﻿ 
namespace Core.Items.Modules
{
    /*

		MetaGroup                      = Armor
		Group                          = RemoteArmorRepairers
		Size                           = Small
		Module                         = avaror gd-200 small remote armor repairer prototype
		CpuUsage                       = 40.00 TF
		ReactorUsage                   = 21.00 RP
		Type                           = Active
		Slot                           = Industrial
		TechnologicalLevel             = T2P
		Mass                           = 168.75 kg
		PackedVolume                   = 0.50 U
		Volume                         = 1.00 U
		AccumulatorConsumption         = 62.00 AP
		CycleTime                      = 20.00 sec
		Repair                         = 60 HP
		OptimalRange                   = 100 m
    */

    using System;
    using Base;
    using Contracts.Enums;
    using Contracts.Interfaces;
    using Extensions;
    using Features;
    
    /// <summary>
    /// Avaror GD-200 small remote armor repairer prototype module class
    /// </summary>
    /// <remarks>File generated on 31/10/2011 16:00:53</remarks>
    public sealed class AvarorGd200SmallRemoteArmorRepairerPrototype : ModuleBase
    {
        /// <summary>
        /// Create a new instance of the <see cref="AvarorGd200SmallRemoteArmorRepairerPrototype"/> class.
        /// </summary>
        public AvarorGd200SmallRemoteArmorRepairerPrototype()
            : base(
            "Avaror GD-200 small remote armor repairer prototype",
            "",
            ModuleMetaGroupsEnum.Armor,
            ModuleGroupsEnum.RemoteArmorRepairers,
            TechnologyLevelsEnum.Level2|TechnologyLevelsEnum.Prototype,
            SizesEnum.Small,
            new LazyFeature[] { 
				new LazyFeature(typeof(ArmorModuleCpuUsage<double>),40.00),
				new LazyFeature(typeof(ArmorModuleReactorUsage<double>),21.00),
				new LazyFeature(typeof(ModuleMass<double>),168.75),
				new LazyFeature(typeof(RemoteArmorRepairAccumulatorUsage<double>),62.00),
				new LazyFeature(typeof(RemoteArmorRepairCycleTime<double>),20.00),
				new LazyFeature(typeof(RemoteArmorRepairAmount<double>),60),
				new LazyFeature(typeof(RemoteArmorRepairOptimal<double>),100), },
            null,
            new IModifier[] { 
				new Modifier( FeatureTypesEnum.Robot, FeaturesEnum.RobotMass, 168.75 ){ IsVisible = false }, } )
        {
        }

        /// <summary>
        /// Obtains the activation type
        /// </summary>
        public override ModuleActivationTypesEnum ActivationType
        {
            get { return ModuleActivationTypesEnum.Active; }
        }
        /// <summary>
        /// Obtains the module slot group 
        /// </summary>
        public override SlotGroupsEnum SlotGroup
        {
            get { return SlotGroupsEnum.Chassis; }
        }
        /// <summary>
        /// Obtains the module slot type 
        /// </summary>
        public override SlotTypesEnum SlotType
        {
            get { return SlotTypesEnum.Industrial; }
        }
    }
}